home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / tools / condrv / cond_e12.lzh / src / include / macro.mac < prev   
Text File  |  1998-07-10  |  1KB  |  84 lines

  1.         .nlist
  2.  
  3. *        macro.mac
  4. *            RUKA assembler macro for X680x0/Human68k(v3)
  5. *            version 1.10 1998/07/11 Tachibana Eririn.
  6.  
  7.         .ifndef    __macro_mac__
  8.             __macro_mac__:=1
  9.  
  10.  
  11. * Constant ------------------------------------ *
  12.  
  13. SR_T:        .equ    15
  14. SR_T1:        .equ    15
  15. SR_T0:        .equ    14
  16. SR_S:        .equ    13
  17. SR_M:        .equ    12
  18. SR_I2:        .equ    10
  19. SR_I1:        .equ    9
  20. SR_I0:        .equ    8
  21. CCR_X:        .equ    4
  22. CCR_N:        .equ    3
  23. CCR_Z:        .equ    2
  24. CCR_V:        .equ    1
  25. CCR_C:        .equ    0
  26.  
  27.  
  28. * User Macro ---------------------------------- *
  29.  
  30. PUSH:        .macro    regs
  31.         movem.l    regs,-(sp)
  32.         .endm
  33.  
  34. POP:        .macro    regs
  35.         movem.l    (sp)+,regs
  36.         .endm
  37.  
  38. EI:        .macro
  39.         andi    #.not.(1<<SR_I2+1<<SR_I1+1<<SR_I0),sr
  40.         .endm
  41.  
  42. DI:        .macro
  43.         ori    #(1<<SR_I2+1<<SR_I1+1<<SR_I0),sr
  44.         .endm
  45.  
  46. STRCPY:        .macro    src,dst
  47.         .local    loop
  48. loop:        move.b    (src)+,(dst)+
  49.         bne    loop
  50.         .endm
  51.  
  52. STREND:        .macro    areg
  53.         .local    loop
  54. loop:        tst.b    (areg)+
  55.         bne    loop
  56.         subq.l    #1,areg
  57.         .endm
  58.  
  59. STRCAT:        .macro    src,dst
  60.         .local    loop1,loop2
  61. loop1:        tst.b    (dst)+
  62.         bne    loop1
  63.         subq.l    #1,dst
  64. loop2:        move.b    (src)+,(dst)+
  65.         bne    loop2
  66.         .endm
  67.  
  68. STRLEN:        .macro    areg,dreg
  69.         .local    loop
  70.         move.l    areg,dreg
  71. loop:        tst.b    (areg)+
  72.         bne    loop
  73.         subq.l    #1,areg
  74.         exg    dreg,areg
  75.         sub.l    areg,dreg
  76.         .endm
  77.  
  78.  
  79. * End of File --------------------------------- *
  80.  
  81.         .endif
  82.  
  83.         .list
  84.